/**
 * 
 */
package metier;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import controller.MatriceDocMot;

/**
 * @author xavier
 * 
 */
public class DecouperFichier {
	/**
	 * Transforme une String en List de String. Le string est découpé avec les
	 * espaces.
	 * 
	 * @param contenuFichier
	 *            Le String à découper
	 * @return Le string découpé.
	 */
	private static List<String> transformationEnList(String contenuFichier) {
		String[] stringApresSplit = contenuFichier.trim().split(" ");
		List<String> liste = new ArrayList<String>();
		for (int index = 0; index < stringApresSplit.length; index++) {
			liste.add(stringApresSplit[index]);
		}
		return liste;

	}

	public static List<String> decouperFichierPhrase(String cheminFichier) {
		String contenuFichier = ChargerFichier.lireFichier(cheminFichier);
		List<String> fichierDecoupe = Arrays.asList(contenuFichier.split("\\."));
		//TODO Passer les filtres
		return fichierDecoupe;
	}

	public static List<String> decouperFichierLigne(String cheminFichier) {
		String contenuFichier = ChargerFichier.lireFichierAvecSautLigne(cheminFichier);
		List<String> fichierDecoupe = Arrays.asList(contenuFichier.split("\n"));
		return fichierDecoupe;
	}

	public static Map<String, Map<String, Integer>> comptageDecouperFichierPhrase(
			String cheminFichier) {
		List<String> fichierDecoupe = decouperFichierPhrase(cheminFichier);
		Map<String, Map<String, Integer>> retour = new HashMap<String, Map<String, Integer>>();
		Integer compteur = 1;
		for (String fichier : fichierDecoupe) {
			retour.put(
					"Phrase " + compteur,
					MatriceDocMot
							.fabriquerMatriceDocMotFichier(transformationEnList(fichier)));
			compteur++;
		}
		return retour;
	}
	public static Map<String, Map<String, Integer>> comptageDecouperFichierLigne(
			String cheminFichier) {
		List<String> fichierDecoupe = decouperFichierLigne(cheminFichier);
		Map<String, Map<String, Integer>> retour = new HashMap<String, Map<String, Integer>>();
		Integer compteur = 1;
		for (String fichier : fichierDecoupe) {
			retour.put(
					"Ligne " + compteur,
					MatriceDocMot
							.fabriquerMatriceDocMotFichier(transformationEnList(fichier)));
			compteur++;
		}
		return retour;
	}
}
